Computer systems can be programmed to automate tasks that may be based on algorithms, flowcharts, equations, formulas, logical expressions, and so forth. The tasks may be expressed as programming instructions that are executed by the computer system. Larger tasks often can be reduced to a set of smaller computer-programmable tasks.
However, some tasks can be difficult for a computer system to perform. For example, pattern recognition, speech or handwriting recognition, image comparison, and Asian language word segmentation can be challenging to automate on a computer system and may require highly complex algorithms that take significant amounts of time to execute on the computer system. Such tasks, however, may be readily performed by humans in many cases. For example, it may be straightforward for a human to describe the differences or similarities between two images, yet very difficult for a computer system to be programmed to perform the same task.